#基类与我们的页面无关 基类的目的是设置 显性时间
#utils先设置驱动 这两个是可以先执行
#由于是APP先创建环境和驱动
import json
import time
from selenium.webdriver.common.by import By
from appium import webdriver
class UtilsDriver:
    _driver=None
    @classmethod
    def Get_Driver(cls):#创建
        if cls._driver is None:
            des_cap={
                "platformName":"android",#基于安卓平台
                "platformVersion":'5.1.1',#基于测试机版本
                "deviceName":"*****",#四个星默认一个设备
                "appPackage":"com.hefhfwjfilw",#包名唯一 通过adb命令获取
                "appActivity":"ewwe",#界面名 不唯一·
                "noReset":"True"#记住app的session
            }

        cls._driver=webdriver.Remote("http//127.0.0.1:4723/wd/hub",des_cap)
        #实现我们的APP初始化
    @classmethod
    def Close_driver(cls):
        if cls._driver is not None:
            cls._driver.quit()
            cls._driver = None

def Get_mag():#获取信息 进行断言 获取信息需要自己调用驱动获取既可
    #将信中的路径自己放进去
    time.sleep(1)#获取信息要加强制等到 因为从数据库中拿的数据
    return UtilsDriver().Get_Driver().find_element(By.XPATH,"SSSAC").TEXT
def Get_datebase(filename):#这里简单的说明一下为什么不将方法放进我们的类中 因为我们要封装我们的文件地址 所以 就要将文件地址传入我们的参数中
    with open("",encoding="utf-8") as f:#打开文件 json存放地址
        date2=[]
        date1=json.load(f)
        for case in date1:
            for x in case.values():
                case_tuple = x.values()
                date2.append(tuple(case_tuple))
        print(date2)  # 注意 为什么没有 对于列表 元祖 字典必须要将结果打印才能调用
        return date2
